package chapter04.s05polymorphic.example15;

// 父类类型可直接指向子类实例：     父类类型 父类对象 = 子类实例;
// 但子类类型指向父类时需要强制转换：子类类型 子类对象 = （子类）父类对象;
// 如何理解：狗都是动物  但动物不一定是狗

// 定义类Anmal
class Animal {
    public void shout() {
        System.out.println("喵喵……");
    }
}

// Dog类
class Dog extends Animal {
    // 重写shout()方法
    public void shout() {
        System.out.println("汪汪……");
    }

    public void eat() {
        System.out.println("吃骨头……");
    }
}

// 定义测试类
public class Example15 {
    public static void main(String[] args) {
        Dog dog = new Dog(); // 创建Dog对象
        // 父类类型可直接指向子类实例
        Animal an = dog;     //（1）向上转型：子类对象→父类对象。 程序会自动完成
        an.shout();
    }
}
